package com.zeny.express.framework.core.support;

import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;

/**
 * spring context
 * 
 * @author zhuwei
 * @date 2013年9月11日 下午8:36:53
 */
public class SpringContext implements ApplicationContextAware {

	/**
	 * spring application context
	 */
	private static ApplicationContext applicationContext;

	@Override
	public void setApplicationContext(ApplicationContext applicationContext)
			throws BeansException {
		SpringContext.applicationContext = applicationContext;
	}

	/**
	 * @return ApplicationContext
	 */
	public static ApplicationContext getApplicationContext() {
		return applicationContext;
	}

	/**
	 * 通过名称获取spring bean
	 * 
	 * @author zhuwei
	 * @date 2013年9月11日 下午8:37:33
	 * @param name
	 * @return
	 */
	public static Object getBean(String name) {
		return applicationContext.getBean(name);
	}

	/**
	 * 通过类型获取spring bean
	 * 
	 * @author zhuwei
	 * @date 2013年9月11日 下午8:37:46
	 * @param type
	 * @return
	 */
	public static <T> T getBean(Class<T> type) {
		return applicationContext.getBean(type);
	}

}
